A wide variety of handheld computing devices exist, many of which have different and incompatible ways of being configured and upgraded. The level of sophistication necessary to understand the details and nuances of these different devices is high. Consequently, a need exists for a mechanism capable of configuring handheld devices according to a multitude of user preferences.